import { Column, Entity, Index, PrimaryGeneratedColumn } from 'typeorm';

/**
 * @Index() 索引可以用来加速数据库搜索
 * 只要性能对某个entity只管重要，我们就可以使用@Index
 * 两种用法:
 *  1、需要对多个字段添加索引，就在最外层的 class 添加 @Index
 *  2、只是对某个字段添加索引就在字段的上面添加 @index
 *
 */
@Entity()
@Index(['name', 'type'])
export class Event {
  @PrimaryGeneratedColumn()
  id: number;

  @Column()
  type: string;

  /**
   * 索引可以用来加速数据库搜索
   */
  @Index()
  @Column()
  name: string;

  @Column('JSON')
  payload: Record<string, any>; // 有效负载将是我们可以存储“事件”有效负载的通用列
}
